home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).adf
/
Include
/
Copper.i
< prev
next >
Wrap
Text File
|
1989-07-02
|
2KB
|
60 lines
{
Copper.i
This file contains definitions for the various Copper
structures.
}
Const
COPPER_MOVE = 0; { pseude opcode for move #XXXX,dir }
COPPER_WAIT = 1; { pseudo opcode for wait y,x }
CPRNXTBUF = 2; { continue processing with next buffer }
CPR_NT_LOF = $8000; { copper instruction only for short frames }
CPR_NT_SHT = $4000; { copper instruction only for long frames }
Type
CopIns = Record
OpCode : Short;
VWaitPos: Short;
VDest : Short; { Since PCQ doesn't have variant records, }
end; { this is the best we can do. }
CopInsPtr = ^CopIns;
{ structure of cprlist that points to list that hardware actually executes }
cprlist = Record
Next : ^cprlist;
start : Address; { start of copper list }
MaxCount: Short; { number of long instructions }
end;
cprlistPtr = ^cprlist;
CopList = Record
Next : ^CopList; { next block for this copper list }
_CopList: ^CopList; { system use }
_ViewPort : Address; { system use }
CopIns : CopInsPtr; { start of this block }
CopPtr : CopInsPtr; { intermediate ptr }
CopLStart : Address; { mrgcop fills this in for Long Frame}
CopSStart : Address; { mrgcop fills this in for Short Frame}
Count : Short; { intermediate counter }
MaxCount : Short; { max # of copins for this block }
DyOffset : Short; { offset this copper list vertical waits }
end;
CopListPtr = ^CopList;
UCopList = Record
Next : ^UCopList;
FirstCopList : CopListPtr; { head node of this copper list }
CopList : CopListPtr; { node in use }
end;
UCopListPtr = ^UCopList;
copinit = record
diagstrt : Array [0..3] of Short; { copper list for first bitplane }
sprstrtup : Array [0..(2*8*2)+2+(2*2)+1] of Short;
sprstop : Array [0..1] of Short;
end;
CopInitPtr = ^copinit;